package router

import (
	"chat_demo/conf"
	"chat_demo/service"
	"github.com/gin-gonic/gin"
)

func NewRouter() *gin.Engine {
	conf.Init()
	r := gin.Default()
	//Recovery 中间件会恢复（recovers)任何恐慌（panics）如果存在恐慌，中间件将会写入500，这个中间件还是很有必要的，
	//因为当你程序里有些异常情况没有考录到，程序就退出了，服务就停止了，所以是必要的
	//这样能够保证服务器在遇到异常时不会直接崩溃，而是能够继续响应其他请求。
	r.Use(gin.Recovery(), gin.Logger())
	v1 := r.Group("/")
	{
		v1.GET("ping", func(c *gin.Context) {
			c.JSON(200, "SUCCESS")
		})
		//v1.POST("user/register", api.UserRegister)
		v1.GET("ws", service.WsHandler)                                                 //用户登录就连接websocket
		v1.GET("chatRooms", service.ChatRoomList)                                       //获取聊天室列表
		v1.GET(":chatRoomID/:UserID/unread-messages", service.GetUnreadMessagesHandler) //获取根据聊天室ID和自己ID获取未读消息
		v1.GET(":chatRoomID/history/:timestamp", service.GetChatRoomHistory)            //获取十条历史消息

	}
	return r
}
